package com.zmn.mcc.permit.client.policy.interfaces;

import com.zmn.mcc.permit.client.model.InterceptDecisionBO;

import java.lang.reflect.Field;

/**
 * 无权限决策
 *
 * @author hankangshuai
 * @since 2020/06/18
 */
public interface NoPermissionPolicy {

    /**
     * 处理无权限
     *
     * @param noPermissionParamObj 目标方法触发无权限的入参对象
     * @param noPermissionField    目标方法入参对象触发无权限的属性
     * @param targetAllParams      目标方法所有的入参对象
     * @return 是否拦截方法执行对象, 当拦截时，须包含拦截后要自定义的返回值
     */
    InterceptDecisionBO processNoPermission(Object noPermissionParamObj, Field noPermissionField, Object[] targetAllParams);
}
